bd825f
@@ -37,13 +37,18 @@
import org.springframework.jms.core.JmsOperations;
 public class DefaultQueueBrowseStrategy implements QueueBrowseStrategy {
 
     public List<Exchange> browse(JmsOperations template, String queue, final JmsQueueEndpoint endpoint) {
-        return  template.browse(queue, new BrowserCallback<List<Exchange>>() {
+        return template.browse(queue, new BrowserCallback<List<Exchange>>() {
             public List<Exchange> doInJms(Session session, QueueBrowser browser) throws JMSException {
+                int size = endpoint.getMaximumBrowseSize();
+                if (size <= 0) {
+                    size = Integer.MAX_VALUE;
+                }
+
                 // not the best implementation in the world as we have to browse
                 // the entire queue, which could be massive
                 List<Exchange> answer = new ArrayList<Exchange>();
                 Enumeration iter = browser.getEnumeration();
-                while (iter.hasMoreElements()) {
+                for (int i = 0; i < size && iter.hasMoreElements(); i++) {
                     Message message = (Message) iter.nextElement();
                     Exchange exchange = endpoint.createExchange(message);
                     answer.add(exchange);
